package demo;

//接口
//可以看成公共的规范，是一种引用数据类型
//使用关键字interface来定义接口
//接口不能被实例化
//接口当中的成员默认是public static final
//接口当中的方法 不写也是默认为public abstract;
//接口当中的方法不能有具体的实现
//但是从JDK8开始，可以写一个default修饰的方法
//接口当中不能有构造方法
//接口需要被类实现，使用关键字implements
//接口当中可以有static修饰的方法

interface IShape {
    //public String name = "1";
    //public static String name2 = "2";
    //public static final String name3 = "3";
    //String name4 = "4";

    void draw();
    /*default public void func() {
        System.out.println("默认的");
    }*/

}
class Rect implements IShape {

    @Override
    public void draw() {
        System.out.println("矩形");
    }

    /*@Override
    public void func() {
        System.out.println("重写这个方法");
    }*/

}

class Flower implements IShape {

    @Override
    public void draw() {
        System.out.println("❀");
    }
}

public class Test {
    public static void drawMap(IShape shape) {
        shape.draw();
    }
    public static void main(String[] args) {
        //IShape shape = new IShape();error
        IShape shape = new Rect();
        //Rect rect = new Rect();
        IShape shape2 = new Flower();
        drawMap(shape);
        drawMap(shape2);
    }
}
